/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package domen;

import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

/**
 *
 * @author Ivan Ivic
 */
public class Trening implements OpstiDomenskiObjekat, Serializable {
    private String sifraTreninga, nazivTreninga;
    private double cena;
    private int brojTermina, brojDanaTrajanja, vremeMaxDolaska;

    public Trening() {
    }

    public Trening(String sifraTreninga, String nazivTreninga, double cena, int brojTermina, int brojDanaTrajanja, int vremeMaxDolaska) {
        this.sifraTreninga = sifraTreninga;
        this.nazivTreninga = nazivTreninga;
        this.cena = cena;
        this.brojTermina = brojTermina;
        this.brojDanaTrajanja = brojDanaTrajanja;
        this.vremeMaxDolaska = vremeMaxDolaska;
    }
    
    public int getBrojDanaTrajanja() {
        return brojDanaTrajanja;
    }

    public void setBrojDanaTrajanja(int brojDanaTrajanja) {
        this.brojDanaTrajanja = brojDanaTrajanja;
    }

    public int getBrojTermina() {
        return brojTermina;
    }

    public void setBrojTermina(int brojTermina) {
        this.brojTermina = brojTermina;
    }

    public double getCena() {
        return cena;
    }

    public void setCena(double cena) {
        this.cena = cena;
    }

    public String getNazivTreninga() {
        return nazivTreninga;
    }

    public void setNazivTreninga(String nazivTreninga) {
        this.nazivTreninga = nazivTreninga;
    }

    public String getSifraTreninga() {
        return sifraTreninga;
    }

    public void setSifraTreninga(String sifraTreninga) {
        this.sifraTreninga = sifraTreninga;
    }

    public int getVremeMaxDolaska() {
        return vremeMaxDolaska;
    }

    public void setVremeMaxDolaska(int vremeMaxDolaska) {
        this.vremeMaxDolaska = vremeMaxDolaska;
    }

    @Override
    public String toString() {
        return getNazivTreninga() + ": " + getCena() + " din.";
    }

    public String vratiNazivTabele() {
        return "TTrening";
    }

    public String vratiNazivKoloneTabele() {
        return "SifraTreninga, NazivTreninga, Cena, BrojTermina, BrojDanaTrajanja, VremeMaxDolaska";
    }

    public String vratiVrednostiZaInsert() {
        return "'" + getSifraTreninga() + "','" + getNazivTreninga() + "'," + getCena() + "," + getBrojTermina() + "," + getBrojDanaTrajanja() + "," + getVremeMaxDolaska();
    }

    public String vratiUslovZaIndentifikacijuUBazi() {
        return "'" + getSifraTreninga() + "'";
    }

    public String vratiJedinstveniIdentifikator() {
        return  "SifraTreninga";
    }

    public String vratiUslovPretrage() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public String postaviVrednostiAtributa() {
        return " SifraTreninga='" + getSifraTreninga() + "', NazivTreninga='" + getNazivTreninga() + "',Cena=" + getCena() + ",BrojTermina=" + getBrojTermina() + ",BrojDanaTrajanja=" + getBrojDanaTrajanja() + ",VremeMaxDolaska=" + getVremeMaxDolaska();
    }

    public LinkedList<OpstiDomenskiObjekat> konvertujResultSetUListu(ResultSet rs) {
        LinkedList<OpstiDomenskiObjekat> listaTreninga = new LinkedList<OpstiDomenskiObjekat>();

        try {
            while (rs.next()) {
                Trening t = new Trening();
                t.setSifraTreninga(rs.getString(1));
                t.setNazivTreninga(rs.getString(2));
                t.setCena(rs.getDouble(3));
                t.setBrojTermina(rs.getInt(4));
                t.setBrojDanaTrajanja(rs.getInt(5));
                t.setVremeMaxDolaska(rs.getInt(6));
                listaTreninga.add(t);
            }
            return listaTreninga;
        }
        
        catch(SQLException e)
        {
            e.printStackTrace();
            return null;
        }

        
    }

    public String vratiNazivDodatneTabele() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public String vratiVrednostiZaInsertDodatneTabele() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public OpstiDomenskiObjekat konvertujResultSetUObjekat(ResultSet rs) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
